﻿/**
 * \file MultiBoolConverter.cs
 * \brief Classe MultiBoolConverter
 * \author ARTUR Vincent
 * \author LAPERDRIX Pierre
 * \version 1.0
 */


namespace WpfJeu
{
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Windows.Data;

    /**
     * \class MultiBoolConverter
     * \brief Permet de renvoyer un booléen en fonction de différents paramètres d'entrée
     */
    class MultiBoolConverter : IMultiValueConverter
    {

        /**
         * \fn public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
         * \brief Convertit différents booléens en entrée en une valeur de sortie précise
         * \param values les différents valeurs des booléens en entrée
         * \param parameter
         * \param culture
         * \return booléen de sortie
         */
        public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            bool visible = true;
            foreach (object value in values)
                if (value is bool)
                    visible = visible && (bool)value;

            if (visible)
                return System.Windows.Visibility.Visible;
            else
                return System.Windows.Visibility.Hidden;
        }

        /* Méthode non utilisée */
        public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }
}
